package main.java;
/**
 * 选择排序
 * 比较 N^2/2  交换N
 * 特点     1.运行时间和输入无关
 *       2.数据移动最少
 * @author xiaotao
 * @Date 2018年3月1日
 */
public class Selection {
    
    public static void sort(Comparable<?>[] a) {
        int N = a.length;
        for (int i = 0;i < N; i++) {
            //将a[i]和a[i+1..N]中的最小的元素交换
            //最小元素索引
            int min = i;
            for (int j = i + 1;j < N; j++) {
                if(SortUtils.less(a[j], a[min])){
                    min = j;
                }
            }
            SortUtils.exch(a, i, min);
        }
    }
}
